Synchronized maps in ebooks using virtual gps channels

ABSTRACT

According to some embodiments, a computer-implemented method for displaying a created map for a plurality of characters in a story is described. The computer-implemented method may include creating a map for a story plot, receiving an indication of a user position in the story plot, determining a set of coordinates on the map for a character in the story plot with respect to the user position, and displaying the map with the character in the story plot represented on the map according to the set of coordinates.

BACKGROUND

The present disclosure relates to creation and presentation ofsynchronized maps in eBooks, and more specifically, to creation andpresentation of synchronized social maps in eBooks using virtual GPSchannels.

In literature, we often see very complex story lines that entail themovement of characters from one location to another throughout the work.In some story plots character movement may be simple and not a keyelement of the story. In other literature, character movements may behighly complex and deeply integrated into the storyline. Anunderstanding the location and movement of the characters may be a keyfactor to full enjoyment of the literature and can greatly enhance areader's experience of the story.

Authors often include maps that illustrate the broad setting of thestory, but these maps may generally be static. For the reader,especially in long epic novels, trilogies, series, etc., it may bedifficult to follow the location of main characters in the story line.Additionally, for the author, when writing complex works it can be adifficult task to maintain consistency throughout the work with respectto a character's location, especially if the author has a strong desireto maintain a high level of accuracy. For example, an author may want toensure that the timeline of the story matches the reality of the spatialrelationship between specific settings and locations in the storyline.If a character travels from one location to another in the plot, theauthor may want to determine whether the character can feasibly travelthe distance from point A to point B in the time described in the textwith respect to the map of the book.

SUMMARY

According to some embodiments, a computer-implemented method fordisplaying a created map for a plurality of characters in a story isdescribed. The computer-implemented method may include creating a mapfor a story plot, receiving an indication of a user position in thestory plot, determining a set of coordinates on the map for a characterin the story plot with respect to the user position, and displaying themap with the character in the story plot represented on the mapaccording to the set of coordinates.

In other exemplary embodiments, a system for displaying a created mapfor a plurality of characters in a story is described. The system mayinclude a processor configured to create a map for a story plot, receivean indication of a user position in the story plot, determine a set ofcoordinates on the map for a character in the story plot with respect tothe user position, and display the map with the character in the storyplot represented on the map according to the set of coordinates

In yet other exemplary embodiments, a non-transitory computer-readablestorage medium is described. The non-transitory computer-readablestorage medium may store computer-executable instructions to perform amethod. The method may include creating a map for a story plot,receiving an indication of a user position in the story plot,determining a set of coordinates on the map for a character in the storyplot with respect to the user position, and displaying the map with thecharacter in the story plot represented on the map according to the setof coordinates.

BRIEF DESCRIPTION OF THE DRAWINGS

The subject matter which is regarded as the invention is particularlypointed out and distinctly claimed in the claims at the conclusion ofthe specification. The forgoing and other features, and advantages ofthe invention are apparent from the following detailed description takenin conjunction with the accompanying drawings in which:

FIG. 1 illustrates a block diagram of a computer system for use inpracticing the teachings herein;

FIG. 2 depicts a computing environment for performing a method fordisplaying a created map for a plurality of characters in a story inaccordance with an exemplary embodiment;

FIG. 3 depicts a method for displaying a created map for a plurality ofcharacters in a story in accordance with an exemplary embodiment;

FIG. 4 depicts a flow diagram of a method for creating a map ofcharacter positions in a story plot in accordance with an exemplaryembodiment;

FIG. 5 depicts a flow diagram of a method for compiling virtual GPS datafor a plurality of characters in a story plot in accordance with anexemplary embodiment; and

FIG. 6 depicts a diagram of compiled vGPS data in accordance with anexemplary embodiment.

DETAILED DESCRIPTION

FIG. 1 illustrates a block diagram of a computer system 100 (hereafter“computer 100”) for use in practicing the embodiments described herein.The methods described herein can be implemented in hardware, software(e.g., firmware), or a combination thereof. In an exemplary embodiment,the methods described herein are implemented in hardware, and may bepart of the microprocessor of a special or general-purpose digitalcomputer, such as a personal computer, workstation, minicomputer, ormainframe computer. Computer 100 therefore can embody a general-purposecomputer. In another exemplary embodiment, the methods described hereinare implemented as part of a mobile device, such as, for example, amobile phone, a personal data assistant (PDA), a tablet computer, etc.

In an exemplary embodiment, in terms of hardware architecture, as shownin FIG. 1, the computer 100 includes processor 101. Computer 100 alsoincludes memory 102 coupled to processor 101, and one or more inputand/or output (I/O) adaptors 103, that may be communicatively coupledvia a local system bus 105. Memory 102 may be operatively coupled to oneor more internal or external memory devices. Communications adaptor 104may be operatively connect computer 100 to one or more networks 115.System bus 105 may also connect one or more user interfaces viainterface adaptor 112. Interface adaptor 112 may connect a plurality ofuser interfaces to computer 100 including, for example, keyboard 109,mouse 110, speaker 113, etc. System bus 105 may also connect displayadaptor 116 and display 117 to processor 101. Processor 101 may also beoperatively connected to graphical processing unit 118.

Processor 101 is a hardware device for executing hardware instructionsor software, particularly that stored in a non-transitorycomputer-readable memory (e.g., memory 102). Processor 101 can be anycustom made or commercially available processor, a central processingunit (CPU), a plurality of CPUs, for example, CPU 101 a-101 c, anauxiliary processor among several other processors associated with thecomputer 100, a semiconductor based microprocessor (in the form of amicrochip or chip set), a macroprocessor, or generally any device forexecuting instructions. Processor 101 can include a memory cache 106,which may include, but is not limited to, an instruction cache to speedup executable instruction fetch, a data cache to speed up data fetch andstore, and a translation lookaside buffer (TLB) used to speed upvirtual-to-physical address translation for both executable instructionsand data. The cache 106 may be organized as a hierarchy of more cachelevels (L1, L2, etc.).

Memory 102 can include random access memory (RAM) 107 and read onlymemory (ROM) 108. RAM 107 can be any one or combination of volatilememory elements (e.g., DRAM, SRAM, SDRAM, etc.). ROM 108 can include anyone or more nonvolatile memory elements (e.g., erasable programmableread only memory (EPROM), flash memory, electronically erasableprogrammable read only memory (EEPROM), programmable read only memory(PROM), tape, compact disc read only memory (CD-ROM), disk, cartridge,cassette or the like, etc.). Moreover, memory 102 may incorporateelectronic, magnetic, optical, and/or other types of non-transitorycomputer-readable storage media. Note that the memory 102 can have adistributed architecture, where various components are situated remotefrom one another, but can be accessed by the processor 101.

The instructions in memory 102 may include one or more separateprograms, each of which comprises an ordered listing ofcomputer-executable instructions for implementing logical functions. Inthe example of FIG. 1, the instructions in memory 102 may include asuitable operating system 111. Operating system 111 can control theexecution of other computer programs and provides scheduling,input-output control, file and data management, memory management, andcommunication control and related services.

Input/output adaptor 103 can be, for example but not limited to, one ormore buses or other wired or wireless connections, as is known in theart. The input/output adaptor 103 may have additional elements, whichare omitted for simplicity, such as controllers, buffers (caches),drivers, repeaters, and receivers, to enable communications. Further,the local interface may include address, control, and/or dataconnections to enable appropriate communications among theaforementioned components.

Interface adaptor 112 may be configured to operatively connect one ormore I/O devices to computer 100. For example, interface adaptor 112 mayconnect a conventional keyboard 109 and mouse 110. Other output devices,e.g., speaker 113 may be operatively connected to interface adaptor 112.Other output devices may also be included, although not shown. Forexample, devices may include but are not limited to a printer, ascanner, microphone, and/or the like. Finally, the I/O devicesconnectable to interface adaptor 112 may further include devices thatcommunicate both inputs and outputs, for instance but not limited to, anetwork interface card (NIC) or modulator/demodulator (for accessingother files, devices, systems, or a network), a radio frequency (RF) orother transceiver, a telephonic interface, a bridge, a router, and thelike.

Computer 100 can further include display adaptor 116 coupled to one ormore displays 117. In an exemplary embodiment, computer 100 can furtherinclude communications adaptor 104 for coupling to a network 115.

Network 115 can be an IP-based network for communication betweencomputer 100 and any external device. Network 115 transmits and receivesdata between computer 100 and devices and/or systems external tocomputer 100. In an exemplary embodiment, network 115 can be a managedIP network administered by a service provider. Network 115 may be anetwork internal to an aircraft, such as, for example, an avionicsnetwork, etc. Network 115 may be implemented in a wireless fashion,e.g., using wireless protocols and technologies, such as WiFi, WiMax,etc. Network 115 may also be a wired network, e.g., an Ethernet network,an ARINC 429 network, a CAN, etc., having any wired connectivityincluding, e.g., an RS232 connection, R5422 connection, etc. Network 115can also be a packet-switched network such as a local area network, widearea network, metropolitan area network, Internet network, or othersimilar type of network environment. The network 115 may be a fixedwireless network, a wireless local area network (LAN), a wireless widearea network (WAN) a personal area network (PAN), a virtual privatenetwork (VPN), intranet or other suitable network system.

If computer 100 is a PC, workstation, laptop, tablet computer and/or thelike, the instructions in the memory 102 may further include a basicinput output system (BIOS) (omitted for simplicity). The BIOS is a setof essential routines that initialize and test hardware at startup,start operating system 111, and support the transfer of data among theoperatively connected hardware devices. The BIOS is stored in ROM 108 sothat the BIOS can be executed when computer 100 is activated. Whencomputer 100 is in operation, processor 101 may be configured to executeinstructions stored within the memory 102, to communicate data to andfrom the memory 102, and to generally control operations of the computer100 pursuant to the instructions.

Referring now to FIG. 2, an exemplary computing environment 200 forperforming a method for displaying a created map for a plurality ofcharacters in a story is described, in accordance with an exemplaryembodiment. Computing environment 200 may include a mobile device 202operatively connected to at least one file server 204 through a network115. Computing environment 200 may further include a second mobiledevice 208, which may also be connected to file server 204 via network115, and/or be operatively connected to mobile device 202. Computingenvironment 200 may further include a second user mobile device 206 incommunication with file server 204 and/or devices 202 and 208.

In some aspects, mobile devices 202 and 208 may be a laptop, an eBookreader, a tablet computer, smartphone, or the like. Mobile devices 202and 208 may be operable to read eBooks, which may include photos, text,maps, animations, etc. Mobile device 208 may be configured tocommunicate with mobile device 202 via wired or wireless communication.For example, device 208 may communicate with device 202 via Bluetoothcommunication, NFC, etc. For example, device 202 may be operative as aneBook reader, and mobile device may be operative as a map display unit.In other aspects, mobile device 202 and/or 208 may access social mediawebsites, share interactive information regarding created maps,character placement on the created maps with respect to one or moresaved bookmarks, etc.

File server 204 may include a mapping engine 210, which may beconfigured to create maps for a story plot, receive and send indicationsof a user position in a story plot of an eBook (e.g., save and sendeBook bookmark information, etc.), parse eBook text or other text forinformation indicative of locations mentioned in story plots, makeassociations between text of an eBook and stored maps associated witheBook story plots, etc. Mapping engine 210 may also be configured toreceive, save and/or create digital maps, and to add coordinate valuesto locations on a virtual (e.g., digital) map. Although some embodimentsdescribed herein show mapping engine 210 operative as part of fileserver 204, mapping engine 210 may alternatively be located at mobiledevice 202, 206, and/or 208, and yet be operatively connected to fileserver 204.

File server 204 may further include social map sharing engine 212 thatmay be configured to send and receive user input regarding bookmarkinformation respective to a plurality of users. Sharing engine 212 maybe configured to interact with social media websites to post userinformation regarding eBook maps, bookmarks, comments regarding storyplots, map animations, etc. Sharing engine 212 may be further configuredto send and receive map information including, for example, virtual GPS(vGPS) information indicative of character positions on a mapcorresponding to respective eBook portions (e.g., positions with respectto paragraphs, sentences, chapters, etc.). In other aspects, social mapsharing engine 212 may be further configured to share avatar (digitalcharacter representations) information between social media users, whereindividual users may create and share digital avatars of their favoriteeBook characters.

In some embodiments, social map sharing engine 212 may include ananimation tool configured to animate vGPS channel information such thatcreated avatars can move in an animated way from one location on a mapto another. For example, sharing engine 212 may provide a charactercreation tool configured to create a character representation from astory plot. In some aspects, sharing engine 212 may provide means forsharing map information with users on one or more other devices. Forexample, a second user mobile device 206 may be one or more devicesconfigured similar to mobile devices 202 and/or 208, but operated by oneor more second users (not shown).

Literature such as novels, short stories, etc., often includescomplicated story plots having multiple characters in action and/orinteracting at various locations of real or imaginary maps. Some booksmay include a map of a real or imaginary setting for the characters ofthe story plot. At times, it may be difficult for a reader to keepcharacter locations in mind as they read the book, even with theinclusion of a static map. In other aspects, when authors writecomplicated storylines, it may be difficult for the writer to track andmanage character locations throughout the storyline as she is draftingthe story. It may be advantageous, therefore, to provide systems andmethods for creating interactive virtual maps configured to display userpositions during a user's interaction with an eBook.

A virtual map may be configured to create digital maps and display oneor more character locations, which may be saved in a data structureeither locally on the mobile device or on a file server (e.g., fileserver 204). According to some embodiments, a mapping system that mayinclude a mapping engine 210 may be configured to create virtual GPS(vGPS) maps using “channels” or layers of data. In some aspects, theprimary channel/layer may be the text of the book. Mapping engine 210may create a virtual GPS channel (vGPS channel) for each of a pluralityof characters in a story plot. In some aspects, the data in thesechannels may include coordinates of a respective character with respectto positions in the book and/or storyline. For example, each sentence orparagraph indicating a locational position for a character in the storyplot may include metadata and/or lookup table data (e.g., vGPS channelinformation) having map coordinate information for a particular storyplot character. In some aspects, the systems and methods describedherein may associate a virtual map with vGPS channels (which may includelocation information similar to GPS coordinates). In other aspects, thetext of a work may be a text channel or t-channel. In some embodiments,vGPS data may include t-channel information.

Embodiments of the present disclosure may include systems and devicesfor authoring literature for use with an interactive eBook map, systemsand devices for creating the interactive eBook map, systems and devicesfor creating and displaying the character positions in a story plot onan eBook map, and systems and devices for automatic compilation of vGPSchannel information for characters in existing electronic literature.Some aspects may also include systems and devices for interactivesharing of vGPS channel information via social media. FIG. 3 considers amethod for displaying a crated map while reading an eBook.

Referring now to FIG. 3, a method 300 for displaying a created map for aplurality of characters in a story is depicted, in accordance with anexemplary embodiment. As shown at block 302, mapping engine 210 maycreate a map for a story plot by assigning coordinates to one or morekey portions of a digital map where the key portions are indicative ofparticular locations in the story plot. In some aspects, a digital mapmay be a map of a real or imaginary setting or location. For example, adigital map may be a map of a castle, a map of an imaginary forest, areal map of Europe, etc. The digital map may be associated with a storyplot in literature embodied as an eBook, text or other digitalliterature.

In some aspects assigning coordinates to the digital map locations maybe performed by an author during the writing process using aninteractive tool described in an embodiment herein. In other aspects,mapping engine 210 may automatically detect references in the text withrespect to character locations. Accordingly, the digital map locationsmay be automatically compiled as vGPS channel information. The vGPSinformation may associate map positions of characters in the form of mapcoordinates with portions of the eBook, text, literature, etc. In someaspects, mapping engine 210 may compile virtual GPS data for a pluralityof a character based on a determined relevance to the eBook portion. Forexample, in some aspects, mapping engine 210 may determine whether aportion of an eBook (e.g., a sentence, a paragraph, etc.) containsinformation placing a particular character at a specific position on themap. Accordingly, mapping engine 210 may determine whether the eBookportion has a relevance to the character in the story plot with respectto a map position and create locational data for a character in the formof vGPS data.

In some aspects, mapping engine 210 may store vGPS informationindicative of the character, the map position and the eBook portioncontaining the determined relevant information. The vGPS location may bestored on file server 204 as compiled vGPS data. The compiled vGPS datamay map a GPS channel for a character from the beginning of the eBookthrough the end of the eBook. For example, vGPS location information maybe a lookup table, a database and/or the like.

As shown at block 304, in some embodiments, mapping engine 210 mayretrieve an indication of a user position in the story plot. In someaspects, the user position in the story plot may include a page numberor sentence number, which may be associated with a particular eBook. Forexample, during the authoring process, the author may associate acharacter coordinate set indicative of a character's position on a mapwith a particular page number and/or a sentence number corresponding tothe place in the story. The association, which may be saved as vGPS dataon file server 204, may include a work name/identification, a charactername, a sentence or paragraph identification, and a user identification.

When mapping engine 210 determines that the user has reached a portionof the eBook having vGPS data, mapping engine may determine thecoordinates on the map for the character. Accordingly, when mappingengine 210 determines that the user has reached that page in the storyplot (e.g., by determining that a page is opened sequentially from aprevious page), then mapping engine 310 may determine a set ofcoordinates on the map for a character in the story plot with respect tothe user position, as shown in block 306. In some aspects, mappingengine 310 may receive an indication from mobile device 202 of a user'sposition (e.g., through bookmark identification, a page number, asentence number, etc.) in an eBook. Mapping engine 210 may access aunique record indicative of a vGPS information associated with a knowncharacter's vGPS channel information.

As shown at block 308, mapping engine 310 may display the map on theuser's device, where the map includes an overlay of the character (e.g.,an avatar or symbol of the character). The displayed character may bepositioned on the map according to the character's position in the storyplot, which may be specified as vGPS data. In other aspects, mappingengine 210 may provide vGPS information requested by mobile device 202,and mobile device 202 may draw the map on a display (e.g., display 117).

In some aspects, the interactive eBook may be configured to output a mapfrom any point in the text using a pre-defined gesture or similar method(click on a link, click on an icon, etc.). Alternately, in otherembodiments, mobile device 202 may display the map on a secondary screenor device (e.g., mobile device 208), which may be kept in sync with thecurrent eBook reading location. The map may be dynamically drawn usingthe last known location of the characters based upon the current readingposition of the eBook. Mapping engine 210 may output avatars (or thelike) on top of the map, which may represent the characters and theircurrent location on the map based upon the data in the vGPS channelprovided by mapping engine 210. Mapping engine 210 may monitor userprogress through the novel, determine, based on vGPS data, whether oneor more character positions have changed on the virtual map based on theuser's position in the novel, and change the character's position on themap accordingly.

As described thus far, the vGPS information may be directly correlatedto a virtual map of the story plot. For example, an author may create aninteractive map using a map creation utility, as described according tosome embodiments herein. In other aspects, mapping engine 210 mayautomatically generate the vGPS information on an existing work ofliterature.

Referring now to FIG. 4 a flow diagram of a method 400 for creating amap of character positions in a story plot is depicted, in accordancewith an exemplary embodiment. Referring now to FIG. 4, at block 402mapping engine 210 may assign coordinates to digital map locations. Insome aspects, mapping engine 210 may prompt for and receive coordinatesassociated with a digital map. In other aspects, mapping engine 210 mayautomatically assign a grid of coordinates to a digital map.

As shown at block 404, mapping engine 210 may allocate a vGPS channelfor the character. A vGPS channel may include a character identifier,e.g., a name, a numerical identifier associated with a character, etc.The vGPS channel information may further include coordinates associatedwith the digital map, and a plurality of unique sentences or paragraphsidentifiers that identify positions of text with respect to the overallwork.

As shown at block 406, mapping engine 210 may determine a location forthe vGPS channel with respect to a portion of the eBook. For example,mapping engine 210 may request a sentence identifier and receive theinput. Mapping engine 210 may save a record of the vGPS channelinformation to a memory in file server 204.

At block 408, mapping engine 210 may determine a relevance of thelocation for the vGPS channel with respect to the eBook portion. Forexample, mapping engine 210 may output a prompt for user inputindicative of vGPS coordinates for a particular channel (e.g., acharacter location in the story plot). Accordingly, a user may inputinformation indicative of a relevant position for a character associatedwith the vGPS channel. Mapping engine 210 may associate the vGPScoordinate location with the eBook portion, and save the record tomemory.

As shown at block 410, mapping engine 210 may compile the vGPS data forthe character based on the relevance to the portion of the eBook.Compiling the information may include associating a plurality of vGPSchannel information (e.g., in connection with a plurality of characters)with unique sentence identifiers for the eBook. A sentence identifiermay include a unique number for each sentence identifying that sentencewith respect to the work as a whole.

In some aspects, it may be advantageous to provide an automatic methodfor compiling vGPS data for characters in an existing work ofliterature. In some embodiments, mapping engine 210 may include a textparser that configured to parse the text of an existing eBook or otherliterature and automatically generate the vGPS location data for eachcharacter. There exists today text parsers that are able to identify thekey parts of a sentence based upon the language syntax. Using to textparser and a lookup table indicative of key locations associated withvGPS coordinates, the vGPS-channel data may be automatically generated.For example, mapping engine 210 may parse the basic sentence of “Bobwent to the Winn Dixie” could be parsed and would identify “Bob” as thesubject of the verb “went” and the predicate noun of “Winn Dixie.” Insome aspects, mapping engine 210 may look up Winn Dixie in a keylocations table, retrieve the vGPS coordinate(s) and place that valueinto the character Bob's vGPS-channel data. FIG. 5 depicts a method 500for compiling vGPS data for a plurality of characters in a story plot ofan eBook, in accordance with an exemplary embodiment.

Referring now to FIG. 5, as shown at block 502, mapping engine 210 mayparse the text of an eBook to determine key parts of each sentence inthe text. FIG. 6 depicts a diagram of compiled vGPS data.

Referring briefly to FIG. 6, compiled vGPS data 600 are depicted, inaccordance with an exemplary embodiment. Compiled vGPS data 600 mayinclude a unique sentence identifier (ID) 602, at least one character ID604, a structure of parsed words 606, and vGPS coordinates 608, 610, and612.

In some embodiments, mapping engine 210 may parse the text of an eBookto determine the relevance of key words in each sentence. As shown atblock 606, the words “When Hero visited the professor in his office thevillain approached the library” are depicted as an exemplary parsedsentence. In some aspects, each word of the sentence may be consideredindividually by mapping engine 210, as shown in compiled vGPS data 600.

Referring again to FIG. 5, as shown at block 504, mapping engine 210 mayassign a sentence order ID 602 to a parsed sentence 606. At block 506,mapping engine 210 may identify key terms indicative of relevantinformation for placing a character at a location on the map. Forexample, mapping engine 202 may locate a subject, a verb, and apredicate noun from the sentence 606 if the sentence elements arepresent in the sentence. Accordingly, as shown at block 508, mappingengine 210 may determine whether the key elements are relevant withrespect to the story plot.

Accordingly, mapping engine 210 may determine whether the subjectreferences a character in the story plot or a character position on themap, determine whether the verb references a change of the characterposition, and determine whether the predicate is indicative of a changeof the character position.

In some aspects, as shown at block 510, mapping engine 210 may determineone or more sets of coordinates on a map of character positions based onthe determined relevance of one or more of the verb, the subject and/orthe predicate noun. For example, the sentence fragment “hero visited theprofessor in his office” can indicate that the character “Hero” islocated at office the character “Professor.” This connection maycorrespond to the portion of the eBook uniquely identified as sentenceID 602. The sentence fragment “Professor in his office” may indicatethat the character Professor is located at the coordinates 610representing “Professor's office at sentence ID 602. Similarly, thecharacter Villain may be placed at or near the place “library” atsentence ID 602. Accordingly, vGPS data 600 may uniquely recordinformation determined by mapping engine 210 as relevant to the storyplot.

As shown at block 512, mapping engine 210 may compile one or morereference nodes for the vGPS data 600 based on an order identifier 602of the sentence 606, and the one or more sets of coordinates 608, 610,and 612.

It may also be challenging to consider, during the creative process,whether a character location with respect to the story plot is feasible.For example, may a character be in New York at 4 am, and then appear inParis at 6:30 am the same day? These types of details may become lost ina complicated storyline. Accordingly, it may be advantageous to providevirtual maps configured to automatically track an author's story plotand display virtual representations of the characters on the interactivemap, and make automatic determinations regarding the feasibility ofcharacter movements and positions with respect to story and/or plotcontext. It may also be advantageous to provide means for virtual GPSmapping of interactive books such as eBooks.

In other aspects, as a book is written (or during some point after itsauthoring and editorial process) mapping engine 210 may prompt for userinput regarding the creation of the vGPS-channels. For example, mappingengine may prompt for user input regarding the initial characterlocations, receive the input, and save the input as respective vGPS datafor the characters as each are introduced in the text. Accordingly, insubsequent sentences when a character moves, mapping engine 210 mayprompt for new coordinates to be associated with the respective portionof the story plot, and record the coordinates as vGPS data.

According to some embodiments, mapping engine 210 may parse surroundingsentences (adjacent) to the present sentence under analysis to determinewhether any time or distance movements are implied or explicitlydescribed. If no time or an insignificant duration of time or indicationof distance is indicated, then mapping engine 210 may infer the locationof a predicate noun (a place) to be an alias of the most recent knownlocation (e.g., the place) of a particular character. For example, aportion of text may read, “George met Sally at the YMCA. After a briefconversation George swam 20 laps in the pool.” In this example not muchtime has elapsed between the two events (e.g. the brief conversation).Accordingly, in some embodiments, mapping engine 210 may determine thatthe place called “pool” could be inferred to be the same location as theplace called “YMCA.” Accordingly, mapping engine 210 may attribute andrecord known coordinates for YMCA to the pool (which may be the samecoordinates).

In other embodiments, mapping engine 210 may check whether certainindications of travel or location are feasible with respect to contextof a story plot. For example, mapping engine 210 may request input forcharacter limits, e.g., “character X can only travel 3 mph average butcharacter Y can travel 60 mph average, since Y is in an automobile.” Inother aspects, mapping engine 210 may apply limits to characters overtime, for example, character X may have a bike in one scene but atrans-dimensional spacecraft in another. Accordingly, mapping engine 210may output an indication of an inconsistency. In some aspects, mappingengine may determine whether a scenario where a character travels to alocation faster than their limits allow for any given time frame exceedsallowable travel rules, as indicated above. This information may beuseful for an author's validation to check the accuracy and/orbelievability of their story line in relation to character location.

The descriptions of the various embodiments of the present inventionhave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the describedembodiments. The terminology used herein was chosen to best explain theprinciples of the embodiments, the practical application or technicalimprovement over technologies found in the marketplace, or to enableothers of ordinary skill in the art to understand the embodimentsdisclosed herein.

The present invention may be a system, a method, and/or a computerprogram product. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Smalltalk, C++ or the like, andconventional procedural programming languages, such as the “C”programming language or similar programming languages. The computerreadable program instructions may execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example,programmable logic circuitry, field-programmable gate arrays (FPGA), orprogrammable logic arrays (PLA) may execute the computer readableprogram instructions by utilizing state information of the computerreadable program instructions to personalize the electronic circuitry,in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

What is claimed is:
 1. A computer-implemented method for displaying acreated map for a plurality of characters in a story, comprising:creating a map for a story plot; receiving an indication of a userposition in the story plot; determining a set of coordinates on the mapfor a character in the story plot with respect to the user position; anddisplaying the map with the character in the story plot represented onthe map according to the set of coordinates.
 2. The computer-implementedmethod of claim 1, wherein creating the map for the story plotcomprises: adding coordinate values to one or more locations on the map;parsing a text of the story for instances of the one or more locations;and associating each instance with a scale for the map.
 3. Thecomputer-implemented method of claim 1 wherein the map includes acompiled virtual GPS data map and a GPS channel for the character from abeginning of the story through an end of the story.
 4. Thecomputer-implemented method of claim 1, wherein the user position in thestory plot is indicated by a page number or sentence number.
 5. Thecomputer-implemented method of claim 1 further comprising compilingvirtual GPS data for a plurality of characters based on a determinedrelevance to the user position in the story.
 6. The computer-implementedmethod of claim 1, further comprising displaying the map with aplurality of characters in the story plot represented on the mapaccording to a determined set of coordinates for each of the pluralityof characters.
 7. The computer-implemented method of claim 6, whereindisplaying the map with the plurality of characters comprises:outputting the map to an operatively connected output device; displayingthe map with the character in the story plot positioned on the mapaccording to a first set of determined set of coordinates; determining asecond set of coordinates; and animating a change of position of thecharacter in the story plot from the first set of coordinates to thesecond set of coordinates.
 8. A system for displaying a created map fora plurality of characters in a story, comprising a processor configuredto: create a map for a story plot receive an indication of a userposition in the story plot; determine a set of coordinates on the mapfor a character in the story plot with respect to the user position; anddisplay the map with the character in the story plot represented on themap according to the set of coordinates.
 9. The system of claim 8,wherein the processor is further configured to: add coordinate values toone or more locations on the map; parse a text of the story forinstances of the one or more locations and creating a record having aset of coordinate values for each of the one or more location instances;associate each instance with a scale for the map; and create a map forthe story plot based on the record.
 10. The system of claim 8 whereinthe map includes a compiled virtual GPS data map and a GPS channel forthe character from a beginning of the story through the end of thestory.
 11. The system of claim 8, wherein the user position in the storyplot is indicated by a page number or sentence number.
 12. The system ofclaim 8, wherein the processor is further configured to compile virtualGPS data for a plurality of characters based on a determined relevanceto the user position in the story.
 13. The system of claim 8, whereinthe processor is further configured to display the map with a pluralityof characters in the story plot positioned on the map according to adetermined set of coordinates for each of the plurality of characters.14. The system of claim 8, wherein the processor is further configuredto: output the map to an operatively connected output device; displaythe map with the character in the story plot positioned on the mapaccording to a first set of determined set of coordinates; determine asecond set of coordinates; and animate a change of position of thecharacter in the story plot from the first set of coordinates to thesecond set of coordinates.
 15. A non-transitory computer-readablestorage medium storing computer-executable instructions to perform amethod, the method comprising: creating a map for a story plot receivingan indication of a user position in the story plot; determining a set ofcoordinates on the map for a character in the story plot with respect tothe user position; and displaying the map with the character in thestory plot represented on the map according to the set of coordinates.16. The non-transitory computer-readable storage medium of claim 15,wherein creating the map for the story plot comprises: adding coordinatevalues to one or more locations on the map; parsing text of the storyfor instances of the one or more locations; and associating eachinstance with a scale for the map.
 17. The non-transitorycomputer-readable storage medium of claim 15, wherein the map includes acompiled virtual GPS data map and a GPS channel for the character from abeginning of the story through an end of the story.
 18. Thenon-transitory computer-readable storage medium of claim 15, wherein theuser position in the story plot is indicated by a page number orsentence number.
 19. The non-transitory computer-readable storage mediumof claim 15, further comprising compiling virtual GPS data for aplurality of characters based on a determined relevance to the userposition in the story.
 20. The non-transitory computer-readable storagemedium of claim 15, further comprising displaying the map with aplurality of characters in the story plot represented on the mapaccording to a determined set of coordinates for each of the pluralityof characters.